#include "BulletCollision/CollisionShapes/btCollisionShape.h"
#ifdef __cplusplus
extern "C" {
#endif
btCollisionShapeData* bullet_NewbtCollisionShapeData(){
	btCollisionShapeData* wrap_out = new btCollisionShapeData();
	return wrap_out;
}

char** bullet_btCollisionShapeData_GetFieldOfM_name(btCollisionShapeData* c_this){
	return (char**)(&c_this->m_name);
}

char** bullet_btCollisionShapeData_GetFieldOfM_padding(btCollisionShapeData* c_this){
	return (char**)(&c_this->m_padding);
}

int bullet_btCollisionShapeData_GetFieldOfM_shapeType(btCollisionShapeData* c_this){
	return (int)(c_this->m_shapeType);
}

void bullet_btCollisionShape_calculateTemporalAabb(btCollisionShape* c_this,btTransform* curTrans,btVector3* linvel,btVector3* angvel,double timeStep,btVector3* temporalAabbMin,btVector3* temporalAabbMax){
	btTransform const& c_arg_curTrans=(btTransform const&)(*curTrans);
	btVector3 const& c_arg_linvel=(btVector3 const&)(*linvel);
	btVector3 const& c_arg_angvel=(btVector3 const&)(*angvel);
	btScalar c_arg_timeStep=timeStep;
	btVector3& c_arg_temporalAabbMin=(btVector3&)(*temporalAabbMin);
	btVector3& c_arg_temporalAabbMax=(btVector3&)(*temporalAabbMax);
	c_this->calculateTemporalAabb(c_arg_curTrans,c_arg_linvel,c_arg_angvel,c_arg_timeStep,c_arg_temporalAabbMin,c_arg_temporalAabbMax);
}

int bullet_btCollisionShape_getUserIndex(btCollisionShape* c_this){
	int c_out = c_this->getUserIndex();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_btCollisionShape_getUserIndex2(btCollisionShape* c_this){
	int c_out = c_this->getUserIndex2();
	int wrap_out = (c_out);
	return wrap_out;
}

void* bullet_btCollisionShape_getUserPointer(btCollisionShape* c_this){
	void * c_out = c_this->getUserPointer();
	void* wrap_out = (void*)(void*)(c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isCompound(btCollisionShape* c_this){
	bool c_out = c_this->isCompound();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isConcave(btCollisionShape* c_this){
	bool c_out = c_this->isConcave();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isConvex(btCollisionShape* c_this){
	bool c_out = c_this->isConvex();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isConvex2d(btCollisionShape* c_this){
	bool c_out = c_this->isConvex2d();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isInfinite(btCollisionShape* c_this){
	bool c_out = c_this->isInfinite();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isNonMoving(btCollisionShape* c_this){
	bool c_out = c_this->isNonMoving();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isPolyhedral(btCollisionShape* c_this){
	bool c_out = c_this->isPolyhedral();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btCollisionShape_isSoftBody(btCollisionShape* c_this){
	bool c_out = c_this->isSoftBody();
	bool wrap_out = (c_out);
	return wrap_out;
}

void bullet_btCollisionShape_setUserIndex(btCollisionShape* c_this,int index){
	int c_arg_index=index;
	c_this->setUserIndex(c_arg_index);
}

void bullet_btCollisionShape_setUserIndex2(btCollisionShape* c_this,int index){
	int c_arg_index=index;
	c_this->setUserIndex2(c_arg_index);
}

void bullet_btCollisionShape_setUserPointer(btCollisionShape* c_this,void* userPtr){
	void * c_arg_userPtr=(void *)(void*)(userPtr);
	c_this->setUserPointer(c_arg_userPtr);
}

#ifdef __cplusplus
}
#endif
